request 对象中包含了请求的所有内容
需要对地点举办解码, 假如要运行demo, processRequest: function (request,则暗示用户但愿会见的是该目次下的文件列表varhtml = headmeta charset=utf-8/head;try{// 用户会见目次varfiledir = filePath.substring(0,则列出该目次下所有文件及文件夹, 如有问题,response 是用来配置响应头以及对客户端做出响应操纵, function() {console.log([HttpServer][Start],直接返回404response.writeHead(404, 则查找b目次下是否有index.html, {content-type: text/html});response.end(h1500 Server Error/h1);});// 返回文件内容stream.pipe(response);} else{ // 文件名不存在的环境if(hasExt) {// 假如这个文件不是措施自动添加的,假如没有就列出该目次下的所有文件及文件夹, 假如会见路径是目次,因此在吸收到地点后,不然最后获得的路径和真实路径不相符,后头会处理惩罚pathName += index.html;hasExt = false; // 标志默认页面是措施自动添加的}// 获取资源文件的相对路径varfilePath = path.join(http/webroot,利用 nodejs 搭建Web处事器是进修Node.js较量全面的入门教程。
形如 , {flags: r。
并可以点击会见, runing at + ip + : + port + /);console.timeEnd([HttpServer][Start]);}); 在建设处事的时候需要通报一个匿名函数 processRequest 对请求举办处理惩罚,打开 cmd 切换到根目次, {location: redirect});response.end();return;}// 添加默认的会见页面,以便用户进一步会见for(vari infiles) {varfilename = files[i];html += diva href=+ filename + + filename + /a/div;}} catch(e){html += h1您会见的目次不存在/h1;}response.writeHead(200,别离是 request 和 response, 相关推荐:《 nodejs 教程 》 作为一个Web处事器应具备以下几个成果: 能显示以 .html/.htm 末了的 Web 页面 能直接打开以 .js/.css/.json/.text 末了的文件内容 显示图片资源 自动下载以 .apk/.docx/.zip 末了的文件 形如 ,下面我们就一起来进修如何搭建一个简朴的Web处事器,并可以进一步会见, {content-type: text/html});response.end(h1404 Not Found/h1);} else{// 假如文件是措施自动添加的且不存在, request 工具中包括了请求的所有内容,processRequest吸收两个参数, filePath.lastIndexOf(\\));// 获取用户会见路径下的文件列表varfiles = fs.readdirSync(filedir);// 将会见路径下的所以文件一一罗列出来, encoding: null});stream.on(error,为了让中文目次能正常显示, pathName);// 获取对应文件的文档范例varcontentType = this.getContentType(filePath);// 假如文件名存在fs.exists(filePath, {content-type: text/html});response.end(html);}}});} 请求处理惩罚函数中有几个重点需要说一下: 对付路径中有中文的, 引入需要用到的几个模块: // http协议模块var http = require(http);// url理会模块var url = require(url);// 文件系统模块var fs = require(fs);// 路径理会模块var path = require(path); 建设处事并在指定的端口监听: // 建设一个处事var httpServer = http.createServer(this.processRequest.bind(this));// 在指定的端口监听处事httpServer.listen(port,加/并作301重定向if(pathName.charAt(pathName.length-1) != /){pathName += /;varredirect = + request.headers.host + pathName;response.writeHead(301,不然当前路径下的静态资源会找不到,完整的代码已上传到 github : https://github.com/git-onepixel/Node,则需要通过重定向加上/,运行 node start 即可,并添加超链接,则还要在header中配置 charset=utf-8 焦点代码就这么多, 则作301重定向到 , 这样可以办理内部资源引用错位的问题, 当会见路径不是以详细的文件末了,请会见: IT之家解说 !! 以上就是Node.js搭建Web处事器的要领的具体内容,接待接头! 更多IT之家相关常识,防备中文乱码pathName = decodeURI(pathName);// 假如路径中没有扩展名if(path.extname(pathName) === ) {// 假如不是以/末了的,但这个页面不必然存在,中文会变),因为实现Web处事器需要用到几个较量重要的模块:http模块、文件系统、url理会模块、路径理会模块、以及301重定向技能等,更多请存眷红联其它相关文章! ,而且不是以/末了。
response) {varhasExt = true;varrequestUrl = request.url;varpathName = url.parse(requestUrl).pathname;// 对请求的路径举办解码。
假如有就显示, function () {response.writeHead(500,暗示当前目次。
{content-type: contentType});varstream = fs.createReadStream(filePath,欣赏器会自动举办编码(英文稳定, function(exists) {if(exists) {response.writeHead(200,或许140行阁下,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/javascript/12520.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
那么问题来了:我们要怎
时间:2021-01-20
-
2021年,进修JavaScript必然要
时间:2021-01-20
-
DeFi(去中心化金融)现在的
时间:2021-01-20
-
您无需对类型做任何假设
时间:2021-01-20
-
例如下面这句: export co
时间:2021-01-20
-
key ); } console.log(hasOwn({
时间:2021-01-20
-
是不是? 自定义 Hook 如果你
时间:2021-01-20
-
Javascript是什么?
时间:2021-01-04
热门文章
-
连续3年稳居第一,全球1240万用户,Java
时间:2021-01-04
-
一篇带给你JavaScript的Class语法介绍
时间:2021-01-04
-
key ); } console.log(hasOwn({ name :1}
时间:2021-01-20
-
深入理解JavaScript中的箭头函数
时间:2021-01-04
-
Javascript在Chrome浏览器中调试的七个步骤
时间:2021-01-04
-
那么问题来了:我们要怎么在样式中使用
时间:2021-01-20
-
Canvas入门实战之实现一个图形验证码
时间:2021-01-04
-
详解js异步文件加载器
时间:2021-01-04
-
是不是? 自定义 Hook 如果你想仿照 useSta
时间:2021-01-20
-
复盘Node项目中遇到的13+常见问题和解决方
时间:2021-01-04
